package com.fowo.api.model.platformshipping;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/**
 * 平台仓发货单 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Getter
@Setter
public class PlatformshippingImportPo {

  /** 发货单号 */
  @ExcelProperty("发货单号")
  private String shipmentCode;

  /** 发货仓库 */
  @ExcelProperty("发货仓库")
  @Size(max = 50, message = "发货仓库长度不能超过50")
  private String deliverywarehouseName;

  @ExcelIgnore
  @Schema(title = "发货仓库")
  private String deliverywarehouse;

  /** 发货时间 */
  @ExcelProperty("发货时间")
  @DateString(message = "发货时间不是有效的日期格式")
  private String deliveryTime;

  /** 发货状态 */
  @ExcelProperty("发货状态")
  @EnumsString(
    value = { "待配货", "待发货", "已发货", "已作废" },
    message = "发货状态只能是“待配货”, “待发货”, “已发货”, “已作废”中的一个"
  )
  private String shippingstatus;

  /** 到货时间 */
  @ExcelProperty("到货时间")
  @DateString(message = "到货时间不是有效的日期格式")
  private String arrivaltime;

  /** 开船时间 */
  @ExcelProperty("开船时间")
  @DateString(message = "开船时间不是有效的日期格式")
  private String sailtime;

  /** 预计到港时间 */
  @ExcelProperty("预计到港时间")
  @DateString(message = "预计到港时间不是有效的日期格式")
  private String expectedarrivaltime;

  /** 实际妥投时间 */
  @ExcelProperty("实际妥投时间")
  @DateString(message = "实际妥投时间不是有效的日期格式")
  private String actualdueime;

  /** 实际发货时间 */
  @ExcelProperty("实际发货时间")
  @DateString(message = "实际发货时间不是有效的日期格式")
  private String actualdeliverytime;

  /** 物流中心编码 */
  @ExcelProperty("物流中心编码")
  @Size(max = 50, message = "物流中心编码长度不能超过50")
  private String logisticscode;

  /** 物流信息 */
  @ExcelProperty("物流信息")
  @Size(max = 50, message = "物流信息长度不能超过50")
  private String logisticsInfo;

  /** 备注 */
  @ExcelProperty("备注")
  @Size(max = 50, message = "备注长度不能超过50")
  private String remarks;

  /** 物流商 */
  @ExcelProperty("物流商")
  @Size(max = 50, message = "物流商长度不能超过50")
  private String logisticsproviderName;

  @ExcelIgnore
  @Schema(title = "物流商")
  private String logisticsprovider;

  /** 物流方式 */
  @ExcelProperty("物流方式")
  @Size(max = 50, message = "物流方式长度不能超过50")
  private String logisticsproviderIdName;

  @ExcelIgnore
  @Schema(title = "物流方式")
  private String logisticsproviderId;

  /** 分摊方式 */
  @ExcelProperty("分摊方式")
  @EnumsString(
    value = {
      "按计费重", "按实重", "按体积重", "按SKU", "按箱子体积", "自定义",
    },
    message = "分摊方式只能是“按计费重”, “按实重”, “按体积重”, “按SKU”, “按箱子体积”, “自定义”中的一个"
  )
  private String headfeetype;

  /** 发货人 */
  @ExcelProperty("发货人")
  @Size(max = 50, message = "发货人长度不能超过50")
  private String sendgoodspeopleName;

  @ExcelIgnore
  @Schema(title = "发货人")
  private String sendgoodspeople;

  /** 订单物流状态 */
  @ExcelProperty("订单物流状态")
  @EnumsString(
    value = { "状态1", "状态2" },
    message = "订单物流状态只能是“状态1”, “状态2”中的一个"
  )
  private String orderlogisticsstatus;

  /** 负责人 */
  @ExcelProperty("负责人")
  @Size(max = 50, message = "负责人长度不能超过50")
  private String principalusernameName;

  @ExcelIgnore
  @Schema(title = "负责人")
  private String principalusername;

  /** 是否锁库存 */
  @ExcelProperty("是否锁库存")
  @EnumsString(
    value = { "是", "否" },
    message = "是否锁库存只能是“是”, “否”中的一个"
  )
  private String isinventorylocked;

  /** 拣货状态 */
  @ExcelProperty("拣货状态")
  @EnumsString(
    value = { "是", "否" },
    message = "拣货状态只能是“是”, “否”中的一个"
  )
  private String pickingnot;

  /** wfs货件号 */
  @ExcelProperty("wfs货件号")
  @Size(max = 50, message = "wfs货件号长度不能超过50")
  private String sendgoodscode;
}
